import java.util.*;

public class test {
    //给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素，请找出移除后数组中不同整数的最少数目。
    public static int remove(int[] arr,int k) {
        Map<Integer,Integer> map=new HashMap<>();
        for(int i=0;i<arr.length;i++){
            int temp=arr[i];
            map.put(temp,map.getOrDefault(temp,0)+1);
        }
        //获取频率
        List<Integer> list=new ArrayList<>(map.values());
        int count=0;
        for(int b:list){
            if(k>=b){
                count++;
                k-=b;
            }
            else break;
        }
        return map.size()-count;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        int[] arr=new int[n];
        for(int i=0;i<n;i++){
            arr[i]=sc.nextInt();
        }
        int k=sc.nextInt();
        int result=remove(arr,k);
        System.out.println(result);
    }
}
